package com.mgg.user.service.user;

import com.mgg.user.vo.UserInfoVO;
import com.mgg.user.vo.UserVO;

import java.math.BigDecimal;
import java.util.Map;

public interface UserService {

    /**
     * 通过userId获取用户信息
     * @param userId
     * @return
     */
    UserInfoVO getUserInfoByUserId(String userId);

    /**
     * 通过shopCode获取用户信息
     * @param shopCode
     * @return
     */
    UserInfoVO getUserInfoByShopCode(String shopCode);

    /**
     * 通过openid获取用户信息
     * @param openid
     * @param providerId
     * @return
     */
    UserVO getUserByOpenid(String openid, String providerId);

    /**
     * 通过门店码获取用户信息
     * @param shopCode
     * @return
     */
    UserVO getUserByShopCode(String shopCode);

    /**
     * 通过手机号获取用户信息
     * @param phone
     * @return
     */
    UserVO getUserByPhone(String phone);

    void saveVipUser(String phone, String inviteCode, String realName, String superId);

    /**
     * 获取用户美币金额
     * @param userId
     * @return
     * @throws Exception
     */
    BigDecimal getUserMCoin(String userId);

    /**
     * 获取用户可使用优惠券数量
     * @param userId
     * @return
     * @throws Exception
     */
    Integer getUserCoupon(String userId);

    /**
     * VIP用户升级店主
     * @param userId
     * @param shopCode
     * @param registTime
     * @param remark
     */
    void vipToShopKeeper(String userId, String shopCode, String registTime, String remark);

    UserInfoVO getAppUserById(String userId);
}
